package br.net.atasacramental.membro.dao;
import br.net.atasacramental.membro.model.Membro;
import br.net.atasacramental.util.ConexaoDB;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author root
 */
public class MembroDAO {
	private String[][] ordemP = {{"idMembro", "desc"}};
	@SuppressWarnings("unchecked")
    public List<Membro> get(){
    	return (List<Membro>) ConexaoDB.get(Membro.class,true,1,100,null,ordemP);
    }
	@SuppressWarnings("unchecked")
    public List<Membro> getByIdStatus(int idStatus){
     	Map<String,Object> params = new HashMap<String, Object>();
     	params.put("idStatus",idStatus);
        return (List<Membro>) ConexaoDB.get(Membro.class,true,1,100,params,ordemP);
    }
    public Membro getByIdMembro(int idMembro){
    	return (Membro) ConexaoDB.getById(Membro.class,idMembro);
    }
    @SuppressWarnings("unchecked")
    public List<Membro> getByIdOrganizacao(int idOrganizacao){
     	Map<String,Object> params = new HashMap<String, Object>();
     	params.put("idOrganizacao", idOrganizacao);
        return (List<Membro>) ConexaoDB.get(Membro.class,true,1,100,params,ordemP);
    }
    private void formatar(Membro m){
    	if(m.getDtUltimoDiscurso()==null){
    		m.setDtUltimoDiscurso(new Date());
    	}
    	if(m.getObs().isEmpty()){
    		m.setObs("");
    	}
    }
    public boolean insert(Membro memb){
        //System.out.println(memb.getSexo()+":"+memb.getNome()+":"+memb.getObs());    	
    	memb.setIdStatus(Membro.ATIVO);
    	this.formatar(memb);
        return ConexaoDB.insert(memb);
    }
    public boolean update(Membro memb){
    	this.formatar(memb);
        return ConexaoDB.update(memb);
    }
}
